package com.ruoyi.system.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 工单列总对象 t_order_main_list
 * 
 * @author nansonghao
 * @date 2022-07-08
 */
public class TOrderMainList extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用于标识工单列表主键，UUID */
    private String listId;

    /** 用于标识工单来源的ID（系统集成模块各系统的集成ID） */
    @Excel(name = "用于标识工单来源的ID", readConverterExp = "系=统集成模块各系统的集成ID")
    private String orderSrc;

    /** 用于标识工单类型编码 */
    @Excel(name = "用于标识工单类型编码")
    private String typeCode;

    /** 用于标识工单编号 */
    @Excel(name = "用于标识工单编号")
    private String workOrderNo;

    /** 供电单位编号 */
    @Excel(name = "供电单位编号")
    private String orgNo;

    /** 工单状态（各系统中工单状态值可能不一致） */
    @Excel(name = "工单状态", readConverterExp = "各=系统中工单状态值可能不一致")
    private String orderStatus;

    /** 用于标识当前工单的流程节点（以谁为准？） */
    @Excel(name = "用于标识当前工单的流程节点", readConverterExp = "以=谁为准？")
    private String flowNow;

    /** 用于标识工单创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用于标识工单创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 用于标识工单截至处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用于标识工单截至处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 用于标识 工单派发 时间 */
    @JsonFormat(pattern = "yyyy-MM-dd ")
    @Excel(name = "用于标识 工单派发 时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dispatchTime;

    /** 用于标识当前处理人 userID */
    @Excel(name = "用于标识当前处理人 userID")
    private String processUserNow;

    //条件 - 工单状态列表
    private List<String>  orderStatusList;

    //条件 isDo- 待办01 已办02  不传 所有
    private String isDone;

    public String getIsDone() {
        return isDone;
    }

    public void setIsDone(String isDone) {
        this.isDone = isDone;
    }

    public List<String> getOrderStatusList() {
        return orderStatusList;
    }

    public void setOrderStatusList(List<String> orderStatusList) {
        this.orderStatusList = orderStatusList;
    }

    public void setListId(String listId)
    {
        this.listId = listId;
    }

    public String getListId() 
    {
        return listId;
    }
    public void setOrderSrc(String orderSrc) 
    {
        this.orderSrc = orderSrc;
    }

    public String getOrderSrc() 
    {
        return orderSrc;
    }
    public void setTypeCode(String typeCode) 
    {
        this.typeCode = typeCode;
    }

    public String getTypeCode() 
    {
        return typeCode;
    }
    public void setWorkOrderNo(String workOrderNo) 
    {
        this.workOrderNo = workOrderNo;
    }

    public String getWorkOrderNo() 
    {
        return workOrderNo;
    }
    public void setOrgNo(String orgNo) 
    {
        this.orgNo = orgNo;
    }

    public String getOrgNo() 
    {
        return orgNo;
    }
    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }
    public void setFlowNow(String flowNow) 
    {
        this.flowNow = flowNow;
    }

    public String getFlowNow() 
    {
        return flowNow;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setDispatchTime(Date dispatchTime) 
    {
        this.dispatchTime = dispatchTime;
    }

    public Date getDispatchTime() 
    {
        return dispatchTime;
    }
    public void setProcessUserNow(String processUserNow) 
    {
        this.processUserNow = processUserNow;
    }

    public String getProcessUserNow() 
    {
        return processUserNow;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("listId", getListId())
            .append("orderSrc", getOrderSrc())
            .append("typeCode", getTypeCode())
            .append("workOrderNo", getWorkOrderNo())
            .append("orgNo", getOrgNo())
            .append("orderStatus", getOrderStatus())
            .append("flowNow", getFlowNow())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("dispatchTime", getDispatchTime())
            .append("processUserNow", getProcessUserNow())
            .toString();
    }
}
